home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Delphi Visual Component Library }
- { Additional BDE dependent Classes }
- { }
- { Copyright (c) 1995,96 Borland International }
- { }
- {*******************************************************}
-
- unit DBCommon;
-
- interface
-
- uses Windows, Classes, DB, BDE;
-
- { FieldType Mappings }
-
- const
- FldTypeMap: array[TFieldType] of Byte = (
- fldUNKNOWN, fldZSTRING, fldINT16, fldINT32, fldUINT16, fldBOOL,
- fldFLOAT, fldFLOAT, fldBCD, fldDATE, fldTIME, fldTIMESTAMP, fldBYTES,
- fldVARBYTES, fldINT32, fldBLOB, fldBLOB, fldBLOB, fldBLOB, fldBLOB,
- fldBLOB, fldBLOB, fldCURSOR);
-
- FldSubTypeMap: array[TFieldType] of Word = (
- 0, 0, 0, 0, 0, 0, 0, fldstMONEY, 0, 0, 0, 0, 0, 0, fldstAUTOINC,
- fldstBINARY, fldstMEMO, fldstGRAPHIC, fldstFMTMEMO, fldstOLEOBJ,
- fldstDBSOLEOBJ, fldstTYPEDBINARY, 0);
-
- DataTypeMap: array[0..MAXLOGFLDTYPES - 1] of TFieldType = (
- ftUnknown, ftString, ftDate, ftBlob, ftBoolean, ftSmallint,
- ftInteger, ftFloat, ftBCD, ftBytes, ftTime, ftDateTime,
- ftWord, ftInteger, ftUnknown, ftVarBytes, ftUnknown, ftUnknown);
-
- BlobTypeMap: array[fldstMEMO..fldstTYPEDBINARY] of TFieldType = (
- ftMemo, ftBlob, ftFmtMemo, ftParadoxOle, ftGraphic,
- ftDBaseOle, ftTypedBinary);
-
- { TFilterExpr }
-
- type
-
- TExprNodeKind = (enField, enConst, enOperator);
-
- PExprNode = ^TExprNode;
- TExprNode = record
- FNext: PExprNode;
- FKind: TExprNodeKind;
- FPartial: Boolean;
- FOperator: CanOp;
- FData: Variant;
- FLeft: PExprNode;
- FRight: PExprNode;
- end;
-
- TFilterExpr = class
- public
- constructor Create(DataSet: TDataSet; Options: TFilterOptions);
- destructor Destroy; override;
- function NewCompareNode(Field: TField; Operator: CanOp;
- const Value: Variant): PExprNode;
- function NewNode(Kind: TExprNodeKind; Operator: CanOp;
- const Data: Variant; Left, Right: PExprNode): PExprNode;
- function GetFilterData(Root: PExprNode): PCANExpr;
- end;
-
- { TExprParser }
-
- TExprToken = (etEnd, etSymbol, etName, etLiteral, etLParen, etRParen,
- etEQ, etNE, etGE, etLE, etGT, etLT);
-
- TExprParser = class
- public
- constructor Create(DataSet: TDataSet; const Text: string;
- Options: TFilterOptions);
- destructor Destroy; override;
- property FilterData: PCANExpr;
- property DataSize: Integer;
- end;
-
- { TMasterDataLink }
-
- TMasterDataLink = class(TDataLink)
- protected
- procedure ActiveChanged; override;
- procedure CheckBrowseMode; override;
- procedure LayoutChanged; override;
- procedure RecordChanged(Field: TField); override;
- public
- constructor Create(DataSet: TDataSet);
- destructor Destroy; override;
- property FieldNames: string;
- property Fields: TList;
- property OnMasterChange: TNotifyEvent;
- property OnMasterDisable: TNotifyEvent;
- end;
-
- function FMTBCDToCurr(const BCD: FMTBcd; var Curr: Currency): Boolean;
- function CurrToFMTBCD(Curr: Currency; var BCD: FMTBcd; Precision,
- Decimals: Integer): Boolean;
- function SafeArrayToVariant(SafeArray: PVarArray): Variant;
-
- implementation
-